Reference: FilterDefinition

Every VirtualDub filter contains a FilterDefinition structure to describe itself.

Definition

struct FilterDefinition {
    struct FilterDefinition *next, *prev;
    FilterModule *module;

    char *              name;                // Name of filter
    char *              desc;                // Filter description
    char *              maker;               // Filter author (reserved - set to NULL)
    void *              private_data;        // Filter private use
    int                 inst_data_size;      // Size of filter's fa->filter_data structure

    FilterInitProc      initProc;
    FilterDeinitProc    deinitProc;
    FilterRunProc       runProc;
    FilterParamProc     paramProc;
    FilterConfigProc    configProc;
    FilterStringProc    stringProc;
    FilterStartProc     startProc;
    FilterEndProc       endProc;

    CScriptObject   *script_obj;             // Sylia script object

    FilterScriptStrProc fssProc;
}
Fields modified by VirtualDub are displayed in red; fields that can be omitted (NULLed) are displayed in blue.

Remarks

VirtualDub links this structure directly into its linked list, and must modify the structure to do so.  Thus, attempting to mark this structure as const will result in a crash, as will adding the same filter more than once or reusing the filter structure.  The structure must exist as long as the filter definition is linked into the global chain.

Filter names should be kept relatively short, and free of obnoxious characters; this is the name that will appear in the filter list, and it is inappropriate to use "Foo Bar's Brand Spanking New Cool Filter" as your filter name.  Similarly, the description should also be kept short, and PhD dissertations on the design or use of your filter should be avoided.

It is customary, although not required, to tag the description with the capabilities of your filter.  List these descriptions, as appropriate, back-to-back on the third line of your description (you may skip lines with \n:

[up] back to main page


VirtualDub external filter SDK 1.05©1999-2001 Avery Lee <phaeron@virtualdub.org>